// 异步 callback 回调函数
// console.log(100)

// setTimeout(()=>{
//   console.log(200)
// }, 1000)
// console.log(300) // 不会阻塞

// 同步
// console.log(100)
// alert(200)
// console.log(300) // alert 会阻塞住

async function fn1(){
  // return 100
  return Promise.resolve(200)
}

const res1 = fn1()
console.log('res1', res1) // Promise
res1.then(data => {
  console.log('data:', data)
})


!(async function (){
  const p1 = Promise.resolve(300)
  const data = await p1 // await 相当于 Promise then
  console.log('data:', data)
})()

!(async function (){
  const data1 = await 400 // await Promise.resolve(400)
  console.log('data1:', data1)
})()

!(async function (){
  const data2 = await fn1() 
  console.log('data2:', data2)
})()